// rgObject.h

#ifndef _RG_OBJECT_H__
#define _RG_OBJECT_H__

#include "rgVector.h"
#include "rgRGB.h"
#include "rgRay.h"
#include "rgMaterial.h"


class rgObject
{
public:

	rgObject()
	{
		mObjectMaterial = 0;
	}

	rgObject(rgMaterial* inMaterial)
	{
		mObjectMaterial = inMaterial;
	}
	
	virtual bool intersect(rgRay& inRay) = 0;
	virtual rgVector getNormal(const rgVector& inPoint) const = 0; 

	//inline rgRay reflect(const rgVector& inPoint, const rgRay& inRay) const;
	rgVector mObjectPosition;
	
	rgMaterial *mObjectMaterial;
};

#endif // _RG_OBJECT_H__